/*
条件编译可能通过两种不同的操作符实现
- cfg 属性：在属性位置中使用 `#[cfg(...)]`
- cfg! 宏：在布尔表达式中使用 `cfg!(...)`
两种形式使用的参数语法都相同
*/

// 这个函数仅当目标系统是linux的时候才会编译
#[cfg(target_os = "linux")]
fn are_you_on_linux() {
    println!("You are running linux!");
}

// 而这个函数仅当目标系统不是 linux 的时候才会编译
#[cfg(not(target_os = "linux"))]
fn are_you_on_linux() {
    println!("You are *not* running linux!");
}

fn main() {
    are_you_on_linux();

    println!("Are you sure ?");
    if cfg!(target_os = "linux") {
        println!("Yes linux");
    } else {
        println!("Not linux");
    }
}